// 广告计划接口相关类型定义

// 广告计划选项接口返回类型
export interface CampaignOption {
  key: string;
  value: string;
}

// 广告计划选择接口返回类型
export interface CampaignSelectResponse {
  code: number;
  msg: string;
  data?: {
    adCategory: CampaignOption[];
    budgetType: CampaignOption[];
    campaignType: CampaignOption[];
    cboAuthorized: CampaignOption[];
    deliveryStrategy: CampaignOption[];
    dayBudget: CampaignOption[];
    marketingType: CampaignOption[];
    budgetSchedule: CampaignOption[];
  };
}

export interface UnitSelectResponse {
  code: number;
  msg: string;
  data?: {
    ageList: CampaignOption[]; // 年龄段
    budgetType: CampaignOption[]; // 预算类型
    contentInterestCodeList: CampaignOption[]; // 内容兴趣
    countryRegionInfoList: CampaignOption[]; // 国家/地区
    deviceBrandCodeList: CampaignOption[]; // 设备品牌
    devicePriceInfoList: CampaignOption[]; // 设备价格
    gender: CampaignOption[]; // 性别
    languageList: CampaignOption[]; // 语言
    linkType: CampaignOption[]; // 链接类型
    ocpxActionType: CampaignOption[]; // 转化目标
    ocpxActionTypeLimit: CampaignOption[]; // 转化目标限制
    osTypeAndVersionList: CampaignOption[]; // 操作系统类型和版本
    placements: CampaignOption[]; // 投放版位
  };
}

// 广告计划列表项类型
export interface CampaignListItem {
  adAccountId: number; // 账户id
  campaignId: number; // 广告计划id
  campaignName: string;
  adCategory: number; // 0:未知 1:效果广告 2:品牌开屏广告 3:助推广告 4:品牌合约信息流广告
  marketingType: number; // 0:未知 1:应用推广 2:网站推广
  campaignType: number; // 0:未知 1:认知 2:行为 3:转化 4:互动数据 5:商品目录销售 6:商品目录销售New 7:社区互动 9:商家外投 10:直播推广
  deliveryStrategy: number; // 0:未知 1:出价上限 2:目标成本 3:最低转化成本 4:目标成本上限
  budgetOptimization: number; // 0:不开启 1:开启
  openStatus: number; // 0:未知 1:开 2:关
  status: number; // 0:未知 1:投放中 2:已暂停 3:已删除 4:超预算 5:预算不足 6:审核中 7:审核拒绝 8:投放完成
  dayBudget: number; // 每日固定预算(0表示不限)，预期值*10^6
  budgetSchedule: string[]; // 固定日期预算(周一到周日，0表示不限)
  dataGenerationSource: number; // 0:未知 1:投放平台(手动) 2:MAPI
  createTime: number; // 创建时间-时间戳，毫秒
  updateTime: number; // 更新时间-时间戳，毫秒
  time: number; // 数据 时间戳
  accountName: string;
  id: number;
  cost: number; // 消耗，单位：账户币种的1/1000000
  exposure: number; // 展现数
  click: number; // 点击数
  action: number; // 转化数
  cpm: number; // 千次曝光消耗(CPM)
  cpc: number; // 单次点击成本(CPC)
  ctr: number; // 点击率(CTR)
  cvr: number; // 转化率(CVR)
  cpa: number; // 平均转化成本(CPA)
  play3s: number; // 3秒播放数
  play5s: number; // 5秒播放数
  playFinished: number; // 完播数
  registration: number; // 注册数
  costPerRegistration: number; // 注册转化成本
  registrationRate: number; // 注册转化率
  addToCart: number; // 加入购物车数
  costPerAddToCart: number; // 加入购物车转化成本
  addToCartRate: number; // 加入购物车转化率
  appLaunch: number; // 唤端数
  costPerAppLaunch: number; // 唤端转化成本
  appLaunchRate: number; // 唤端转化率
  activation: number; // 激活数
  costPerActivation: number; // 激活转化成本
  activationRate: number; // 激活转化率
  pageView: number; // 页面浏览数
  costPerPageView: number; // 页面浏览转化成本
  pageViewRate: number; // 页面浏览转化率
}

// 广告计划列表响应类型
export interface CampaignListResponse {
  code?: number;
  msg?: string;
  data?: {
    total: number;
    list: CampaignListItem[];
  };
}

// 广告账号接口返回类型
export interface AdAccountResponse {
  code?: number;
  msg?: string;
  data?: {
    adAccountId: number;
    adAccountName: string;
  }[];
}

/** 广告组列表响应类型 */
export interface UnitListResponse {
  data: {
    total: number;
    list: Array<{
      adAccountId: number; // 广告主账号id
      campaignId: number; // 广告计划id
      unitId: number; // 广告组id
      unitName: string; // 广告组名称
      adCategory: number; // 广告分类
      openStatus: number; // 投放开关状态
      status: number; // 投放状态
      appId: number; // 目标应用appId
      websiteUrl: string; // 网站推广链接
      pixelId: number; // Kwai Pixel 或 EventAPI ID
      placements: number[]; // 投放版位设置
      countryRegionInfoList: Array<{
        code: number;
        childNodeList: null;
      }>; // 目标人群-国家/地区
      populationIdList: string[]; // 目标人群-自定义人群-定向id集合
      excludePopulationIdList: string[]; // 目标人群-自定义人群-排除的定向id集合
      ageList: string[]; // 目标人群-年龄段集合
      gender: number; // 目标人群-性别
      languageList: string[]; // 目标人群-语言
      devicePriceInfoList: string[]; // 目标人群-设备价格
      osTypeAndVersionList: number[]; // 目标人群-操作系统和系统版本
      deviceBrandCodeList: string[]; // 目标人群-手机品牌Code集合
      contentInterestCodeList: string[]; // 目标人群-内容兴趣Code集合
      dayBudget: number; // 每日固定预算
      budgetSchedule: string[]; // 固定日期预算
      startTime: number; // 排期开始时间
      endTime: number; // 排期结束时间
      timeSchedule: string[]; // 投放排期时间段
      ocpxActionType: number; // 转化目标
      bidType: number; // 计费方式
      bid: number; // 出价
      dataGenerationSource: number; // 数据产生源头
      createTime: number; // 创建时间
      updateTime: number; // 更新时间
      time: number; // 数据 时间戳
      accountName: string;
      id: number;
      cost: number; // 消耗，单位：账户币种的1/1000000
      exposure: number; // 展现数
      click: number; // 点击数
      action: number; // 转化数
      cpm: number; // 千次曝光消耗(CPM)
      cpc: number; // 单次点击成本(CPC)
      ctr: number; // 点击率(CTR)
      cvr: number; // 转化率(CVR)
      cpa: number; // 平均转化成本(CPA)
      play3s: number; // 3秒播放数
      play5s: number; // 5秒播放数
      playFinished: number; // 完播数
      registration: number; // 注册数
      costPerRegistration: number; // 注册转化成本
      registrationRate: number; // 注册转化率
      addToCart: number; // 加入购物车数
      costPerAddToCart: number; // 加入购物车转化成本
      addToCartRate: number; // 加入购物车转化率
      appLaunch: number; // 唤端数
      costPerAppLaunch: number; // 唤端转化成本
      appLaunchRate: number; // 唤端转化率
      activation: number; // 激活数
      costPerActivation: number; // 激活转化成本
      activationRate: number; // 激活转化率
      pageView: number; // 页面浏览数
      costPerPageView: number; // 页面浏览转化成本
      pageViewRate: number; // 页面浏览转化率
      campaignName?: string; // 广告计划名称
      creativeId?: number; // 创意ID
      creativeName?: string; // 创意名称
    }>;
  };
}
